package com.feeyin.radar.crm.service;

import java.util.List;
import java.util.Map;

import com.feeyin.radar.commons.Page;
import com.feeyin.radar.crm.form.CustomerLimitForm;
import com.feeyin.radar.crm.model.ContractCaseType;
import com.feeyin.radar.crm.model.Customer;
import com.feeyin.radar.crm.model.ProcessGroup;
import com.feeyin.radar.crm.model.QueryCustomer;

public abstract interface CustomerService
{
  public abstract Map getCustomerInfoRecords();

  public abstract Map getCustomerDictionaryRanges();

  public abstract List getCustomers();

  public abstract List getNearViewCustomersByUserId(Integer paramInteger);

  public abstract List getSaleStageUpdateCustomersByUserId(Integer paramInteger);

  public abstract List getPageAllCustomers(String paramString, Page paramPage);

  public abstract Integer getPageAllCustomerCount(String paramString);

  public abstract List getPageMyCustomers(String paramString, Integer paramInteger, Page paramPage, QueryCustomer paramQueryCustomer);

  public abstract Integer getPageMyCustomersCount(String paramString, Integer paramInteger, QueryCustomer paramQueryCustomer);

  public abstract List getPageMyAllCustomers(String paramString, Integer paramInteger, Page paramPage);

  public abstract Integer getPageMyAllCustomersCount(String paramString, Integer paramInteger);

  public abstract List getPageMyAllCustomersByCustomerName(String paramString, Integer paramInteger, Page paramPage);

  public abstract Integer getPageMyAllCustomersCountByCustomerName(String paramString, Integer paramInteger);

  public abstract List getPageDeptCustomers(Integer paramInteger, Page paramPage, QueryCustomer paramQueryCustomer);

  public abstract Integer getPageDeptCustomerCount(Integer paramInteger, QueryCustomer paramQueryCustomer);

  public abstract Customer getCustomerById(Integer paramInteger);

  public abstract Customer getCustomerById2(Integer paramInteger1, String paramString, Integer paramInteger2);

  public abstract CustomerLimitForm getCustomerLimit(Integer paramInteger);

  public abstract CustomerLimitForm getDiscardCustomerNum(Integer paramInteger);

  public abstract Customer getCustomerSaleInfoById(Integer paramInteger);
  
  public List getCustomerAddedsById(String realPath, Integer id);

  public abstract List isRepeatSet();

  public abstract boolean isRepeatAddCustomer(Customer paramCustomer);

  public abstract boolean isRepeatUpdateCustomer(Customer paramCustomer);

  public abstract boolean insertCustomer(Customer paramCustomer);

  public abstract boolean updateCustomer(Customer paramCustomer, String realPath);

  public abstract boolean updateViewCustomerDate(Integer paramInteger);

  public abstract boolean discardMyCustomers(String[] paramArrayOfString);

  public abstract List getDeptNameCustomer(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getDeptNameCustomerCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getOwnNameCustomer(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getOwnNameCustomerCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getMyShareCustomer(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getMyShareCustomerCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getNearViewCustomers(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getNearViewCustomersCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getNearUpdatedCustomer(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getNearUpdatedCustomerCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getDeptSaleRecordCustomer(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getDeptSaleRecordCustomerCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getDeptSucceedContract(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getDeptSucceedContractCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getMySucceedContract(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getMySucceedContractCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getDeptHangupBusinessOpportunity(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getDeptHangupBusinessOpportunityCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getMyHangupBusinessOpportunity(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getMyHangupBusinessOpportunityCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getMyGiveupBusinessOpportunity(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getMyGiveupBusinessOpportunityCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getDeptGiveupBusinessOpportunity(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getDeptGiveupBusinessOpportunityCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getNearChangedBusinessOpportunity(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getNearChangedBusinessOpportunityCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);

  public abstract List getNearFollowedBusinessOpportunity(Integer paramInteger, Page paramPage, String paramString, QueryCustomer paramQueryCustomer);

  public abstract Integer getNearFollowedBusinessOpportunityCount(Integer paramInteger, String paramString, QueryCustomer paramQueryCustomer);
  
	public Integer getPageAllCaseTypeCount(String caseTypeName);
	
	public List<ContractCaseType> getPageAllCaseTypes(String caseTypeName, Page page);
	
	public Integer getPageAllProcessGroupCount(String processId);
	
	public List<ProcessGroup> getPageAllProcessGroup(String processId, Page page);	
	
}